=================================================
 Hurd (Guile) Scheme bindings & translator library
=================================================

Nothing to see yet, for now here's some documentation
of the clisp bindings this code is based on:

I (Maxime Devos) intend to release my changes as
GPLv3.0-or-later, but let's wait on a response from
bug-hurd@gnu.org and Flavio Cruz first ...

Some Scheme conventions were adopted:
  xxx-set --> xxx-set!
  condition -> &condition
  class -> <class>  (don't do this for foreign enums)
  x-p -> x?
  t -> #t

Original Lisp code in defuns do not have to be converted to
Scheme conventions if the differences are not visible
to callers.  Limiting changes should help with copying
bug fixes & new features between the CL and Scheme port.

nil is replaced with #nil, which is a Guile Scheme object
that is false (but not eq? #f) and null? (but not eq? '()).
Later we can investigate when #nil can be replaced with '()
or #f.

Mach code is in (mach) (which includes various *.lisp from mach/),
hurd code is in (hurd) or (hurd STUFF) (likewise), some other code is in (common).

At least, that's the idea.  Some code in (mach) needs to be reordered ...

---

A patched version of CFFI is included under cffi/,
which is included by cffi.scm. Use --squash when fetching
updates from upstream, & prefix the commit message with "cffi: ".

* Compilation

Makefile.am and configure.ac are generated by guile-hall
(use hall distribute -x and autoreconf -vif)

XXX fix guile-hall to set --target=TRIPLET.

=================================================
 Hurd Common Lisp bindings & translator library
=================================================

- common/

Contains common code to mach, hurd and hurd-translator packages.

- mach/

Contains mach bindings for functions used to manipulate ports in the hurd package.

- hurd/

Contains bindings to some RPC's. Implements the iouser abstraction and a Lispy libports implementation using only mach functions (not the libports library).

- translator/

Contains the translator and node class. Implements the translator callbacks and describes the available API.

- tree-translator/

Special translator class to easily implement directory based translators.

- examples/

Translator examples.

- tests/

Test the translator library using the 'test' translator.
